package ren.steve.system.utils;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.sql.*;

/**
 * @Author: LiuGuoJia
 * @Description:
 * @Date: Created in 2024/1/21 02:09
 */

public class CustomDateTypeHandler extends BaseTypeHandler<Date> {

  private final String dateFormat = "yyyy-MM-dd HH:mm:ss"; // 日期格式

  @Override
  public void setNonNullParameter(PreparedStatement ps, int i, Date date, JdbcType jdbcType) throws SQLException {
    // 将日期格式化为字符串，并使用 ps.setString 方法将其设置到参数中
    ps.setString(i, date.toString());
  }

  @Override
  public Date getNullableResult(ResultSet rs, String field) throws SQLException {
    // 从结果集中获取日期，并将其解析为 Date 对象
    String date = rs.getString(field);
    if (date != null) {
      return new Date(Long.parseLong(date)); // 假设日期字符串是以毫秒为单位的 UNIX 时间戳
    } else {
      return null;
    }
  }

  @Override
  public Date getNullableResult(ResultSet rs, int i) throws SQLException {
    return null;
  }

  @Override
  public Date getNullableResult(CallableStatement cs, int i) throws SQLException {
    return null;
  }

}
